home *** CD-ROM | disk | FTP | other *** search
- /* Script Rexx
- Spline with a number of point*/
-
- call addlib("rexxmathlib.library", 5, -30, 0)
-
- options results
- parse ARG Port Mx My Mx1 My1 Mxa Mya b
-
- ADDRESS COMMAND
- sens=0
- sz=20
- if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Total_Spline') THEN DO
- IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Total_Spline', "R") then DO
- sens = READLN('lfile')
- sz = READLN('lfile')
- CALL CLOSE('lfile')
- END
- END
-
- ADDRESS value Port
- pp_DialogInit 250 85 "*Spline*" 2
- pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 sz
- pp_Cycle 1 110 25 110 16 "Color*Option" 1 "Current*Color|Cycling*Color" sens
- pp_Dialog
- rc=result
- if rc=0 then
- do
- EXIT
- end
-
- pp_UpdateUndo
-
- pp_GetDialog 0
- sz=result
-
- pp_GetDialog 1
- sens=result
-
- CALL SavePrefs('Total_Spline',sens,sz)
- ADDRESS value Port
-
- xa= (Mx+Mx1)/2
- ya= (My+My1)/2
- Mxa= xa + 2*(Mxa-xa)
- Mya= ya + 2*(Mya-ya)
- x=Mx
- y=My
-
- pp_GetApen
- z=result
-
- sz=sz-1
-
- pp_Plot Mx My
-
- DO f=1 To sz
- ff=f/sz
- xa=Mx+(Mxa-Mx)*ff
- ya=My+(Mya-My)*ff
- xb=Mxa+(Mx1-Mxa)*ff
- yb=Mya+(My1-Mya)*ff
- x=trunc(xa+(xb-xa)*ff+0.5)
- y=trunc(ya+(yb-ya)*ff+0.5)
- pp_Plot x y
- if sens=1 then DO
- pp_SetApen z
- z=z+1
- END
- END
-
- EXIT
-
- SavePrefs: PROCEDURE
-
- Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
-
- if EXISTS(Prefname) THEN DO
- ADDRESS COMMAND
- 'delete >nil: '||Prefname
- END
-
- IF OPEN('pfile',PrefName,'W') THEN DO
-
- do i=2 to ARG()
- CALL WRITELN('pfile',ARG(i))
- end
-
- CALL CLOSE('pfile')
-
- RETURN
-
-
-